class Functor {
  constructor (value) {
    this._value = value
  }

  map (f) {
    return new Functor(f(this._value))
  }

  value (f) {
    return f(this._value)
  }
}

// 把美元转换成人民币
// $299.9
const toRMB = v => new Functor(v)
  .map(v => v.replace('$', ''))
  .map(parseFloat)
  .map(v => v * 7)
  .map(v => v.toFixed(2))
  .value(v => '￥' + v)

console.log(toRMB('$299.9'))
  
